// 接口服务器基地址
const baseURL = 'https://pcapi-xiaotuxian-front-devtest.itheima.net'

// 请求拦截器
uni.addInterceptor('request',{
  invoke(args){
    // 如果不是http开头的就拼接 RUL
    // 小技巧：any 类型可以通过 as 断言唤起代码提示
    if(!(args.url as string).startsWith('http')){
      args.url = baseURL + args.url
    }
  }
})

// 请求类型
type ApiRes = {
  code:string
  msg:string
  result:any
}

/**
 * 
 * @param options 封装通用的请求 http 方法
 * @returns 
 */
export const http = <T>(options:UniApp.RequestOptions)=>{
  return new Promise<T>((resolve,reject)=>{
    uni.request({
      // 应用所有的参数
      ...options,
      // 成功
      success(res){
        resolve((res.data as ApiRes).result)
      },
      // 失败(网络)
      fail(err){
        reject(err)
      }
    })
  })
}